diff --git a/pkg/providers/v1/aws.go b/pkg/providers/v1/aws.go
index a6e2597..39dab8f 100644
--- a/pkg/providers/v1/aws.go
+++ b/pkg/providers/v1/aws.go
@@ -5001,6 +5001,11 @@ func mapNodeNameToPrivateDNSName(nodeName types.NodeName) string {
 // Deprecated: use instanceIDToNodeName instead. See
 // mapNodeNameToPrivateDNSName for details.
 func mapInstanceToNodeName(i *ec2.Instance) types.NodeName {
+	for _, tag := range i.Tags {
+		if aws.StringValue(tag.Key) == "Name" {
+			return types.NodeName(aws.StringValue(tag.Value))
+		}
+	}
 	return types.NodeName(aws.StringValue(i.PrivateDnsName))
 }
 
@@ -5028,7 +5033,19 @@ func (c *Cloud) findInstanceByNodeName(nodeName types.NodeName) (*ec2.Instance,
 	}
 
 	if len(instances) == 0 {
-		return nil, nil
+		filters := []*ec2.Filter{
+			newEc2Filter("tag:Name", privateDNSName),
+			newEc2Filter("instance-state-name", aliveFilter...),
+		}
+
+		instances, err = c.describeInstances(filters)
+		if err != nil {
+			return nil, err
+		}
+
+		if len(instances) == 0 {
+			return nil, nil
+		}
 	}
 	if len(instances) > 1 {
 		return nil, fmt.Errorf("multiple instances found for name: %s", nodeName)
